//	Infinitas README

Infinitas - a "Infinity Windoid"-style window class

"Infinitas" is a class which I put together, in preparation
for a larger project on which I'm working, to imitate the
look and behavior of the "Infinity Windoid" WDEF, by ...
(In one or two minor respects I hewed closer to the look
of the Macintosh System 7.5 floating palette WDEF, which
is likely itself derived from the Infinity Windoid.

BeOS, at the moment, does not support a mechanism, like
the WDEF, for specifying how a window frame, title bar,
etc., should be drawn.  Hence, as with Steve Sprang's
"PowerBar" window, "Infinitas" must needs use custom
BViews to emulate the appearance and action of a window's
title bar and boxes.  This also
make the job of _using_ the "Infinitas" window rather
more difficult than that of using an ordinary window.

I provide all the source code for the Infinitas class,
as well as for a small, brain-dead test application.

The features of Infinitas I summarize below:

* All parts of a normal BeOS window:  title bar, grow box,
zoom box, grow box.  The title bar can be used to drag
the window; double-clicking the bar will execute "Minimize()"
on the window.  The close box executes "Quit()"; the zoom box
executes "Zoom()".  The grow box allows the window to be
resized.
* Infinitas supports either a vertical or horizontal title
bar, with the option of switching the window's orientation
on the fly.
* The "base color" used to calculate the colors needed to
draw the parts of Infinitas can be specified on construction.
* Utility functions for "flipping" the window (i. e. changing
the title bar orientation to and from horizontal to vertical)
and "windowshading" the window ("minimizing" the window by
rolling up the content region into the title bar) are provided.

Infinitas has some problems, of course.

* If a title string is specified, it will only be drawn
if the window's title bar is horizontal.  This is the price
paid for using "Erich" to draw the title; bitmapped fonts
cannot be drawn vertically using SetFontRotation().
* The title string is drawn in black.  Set the window's
"base color" to dark grey, and the title will not show
up.
* The window's "base color" cannot be specified or changed
dynamically.  It must be done at the time the window is
instantiated.
* The method used to calculate highlight and shadow colors
is quite crude.  As a result only light colors will give
good results; dark colors give terrible results, and bright
colors (e. g. pure red or pure blue) do not look much
better.  Light grey or blue works best.
* Window resizing using the grow box isn't as efficient as
it might be.
* The chief problem with Infinitas is that it is not possible
to add children without taking some trouble to insure that
they will not overlap with the views used to represent the
window structures.  I haven't worked out a good way to do this.

Infinitas was developed using BeOS Developers' Release 8.3
and CodeWarrior BeIDE 1.2 with limited linker, on a
PowerMac 8500/120.

Any questions, comments, or complaints can be directed to
me:

Ernest Tomlinson
10061 Osgood Way
San Diego, CA 92126

phone:  (619) 549-0057
e-mail:  etomlins@rohan.sdsu.edu or et@ugcs.caltech.edu
WWW:  http://www.ugcs.caltech.edu/~et  (not much of a page yet)